Multi-user worlds or domains, known as MUDs, are commonly used to provide a virtual world that represents a real or imaginary place. Computer graphics, images, video, force feedback, and audio data may be used to define a computer representation of the virtual world for one or more users. Typically, the virtual world enables multiple users to simultaneously perceive and interact with the virtual world and with each other through different computers that are connected by a network.
An object oriented MUD, referred to as a MOO, is a network database server that typically stores text objects having properties and methods. The topology of the space in a MOO is defined by room objects that represent discrete locations and are interconnected by portal objects. Objects in a MOO can also represent things located in a room, and objects called players or avatars represent the users' characters in the world. Users in the same room are able to talk by typing text and reading the text that others type. A graphical or multimedia MOO has been provided in accordance with a system described in U.S. Pat. No. 6,049,805 for Dynamic Event Mechanism for Objects with Associational Relationships, which is assigned to the assignee of the present invention. Typically, prior computer network object oriented domains were directed to one particular application, such as a virtual world game or a multi-user communication system.
The present invention includes a store of objects that are distributed between a server computer and multiple client computers to support an object oriented application communication environment that provides communication between multiple software applications or applets. In one implementation, the distributed object stores are an adaptation of an object oriented multi-user virtual world environment. The application communication environment provides a whiteboard for information sharing among multiple pieces of code (applets). (The term “whiteboard” is used here in a computer science sense of a shared information repository, not in the human sense of a graphic display device.)
The application communication environment may include a central shared object store of interfaced software objects that operate on a server computer and communicate with one or more software applications on the server computer. A local shared object store of interfaced software objects operates on each client computer and communicates with the central shared object store and one or more software applications on that client computer. Changes to interfaced software objects in the local shared object stores are automatically and dynamically propagated to the interfaced software objects in the central shared object store. As a result, communications between the one or more software applications and the local shared object store on each client computer are available to the central shared object store.
In one implementation, the application communication environment may also include a local private object store of interfaced software objects that operate on each client computer and communicate with one or more software applications on the client computer. The local private object store is separate from the local shared object store. Communications between the one or more software applications and the local private object stores on each client computer are not directly available to the central shared object store.
The present invention provides an extensible application communication environment that reduces server computational and data transmission resource demands by only providing updates of a changed object to the appropriate client computers. In addition, local private object stores can provide a local application communication environment that requires no network resources and is secure with respect to the computer network.
Additional objects and advantages of the present invention will be apparent from the detailed description of the preferred embodiment thereof, which proceeds with reference to the accompanying drawings.